package com.jml.程序员;


import java.util.HashMap;
import java.util.Map;
import org.junit.Test;

/**
 * @author:jml
 * @date: 2020/3/26 0026 23:23
 * @description：
    *
    * 实现一个算法，确定一个字符串 s 的所有字符是否全都不同。
    * 示例 1：
    * 输入: s = "leetcode"
    * 输出: false
    *
    * 示例 2：
    * 输入: s = "abc"
    * 输出: true
    * 限制：
    *
    * 0 <= len(s) <= 100
    * 如果你不使用额外的数据结构，会很加分。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/is-unique-lcci/
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class 判定字符是否唯一001 {

    @Test
    public void my(){
        String str = "leecode";
        my(str);
    }

    public boolean my(String astr) {
        Map<Character, Integer> map = new HashMap<>();
        for(int i=0;i<astr.length();i++){
            if(map.get(astr.charAt(i))!=null){
                return false;
            }else{
                map.put(astr.charAt(i),1);
            }
        }
        return true;
    }

    /**
     * ASCII值标记法:标准ASCII码字符集总共的编码有128个
     */
    @Test
    public void other01 (){
        String str = "leecode";
        other01(str);
    }
    public boolean other01(String astr) {
        int[] temp = new int[256];
        for(int i=0;i<astr.length();i++){
            char s = astr.charAt(i);
            if(temp[s] == 1){
                return false;
            }
            temp[s] = 1;
        }
        return true;
    }


}
